A Generic Framework for Symbolic Execution

نویسندگان

  • Andrei Arusoaie
  • Dorel Lucanu
  • Vlad Rusu
چکیده

We propose a language-independent symbolic execution framework for languages endowed with a formal operational semantics based on term rewriting. Starting from a given definition of a language, a new language definition is automatically generated, which has the same syntax as the original one but whose semantics extends data domains with symbolic values and adapts semantical rules to deal with these values. Then, the symbolic execution of concrete programs is the execution of programs with the new symbolic semantics, on symbolic input data. We prove that the symbolic execution thus defined has the properties naturally expected from it. A prototype implementation of our approach was developed in the K Framework. We demonstrate the genericity of our tool by instantiating it on several languages, and show how it can be used for the symbolic execution and model checking of several programs.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

A Generic Framework for Symbolic Execution: Theory and Applications

The modern world is shifting from the traditional workmanship to a more automated work environment, where software systems are increasingly used for automating, controlling and monitoring human activities. In many cases, software systems appear in critical places which may immediately affect our lives or the environment. Therefore, the software that runs on such systems has to be safe. This req...

متن کامل

A Critical Review of Dynamic Taint Analysis and Forward Symbolic Execution

In this note, we describe a critical review of the paper titled “All you wanted to know about dynamics taint analysis and forward symbolic execution (but may have been afraid to ask)” [1]. We analyze the paper using Paul Elder critical thinking framework [2]. We start with a summary of the paper and motivation behind the research work described in [1]. Then we evaluate the study with respect to...

متن کامل

Specifying Languages and Verifying Programs with K http://kframework.org

K is a rewrite-based executable semantic framework for defining languages. The K framework is designed to allow implementing a variety of generic tools that can be used with any language defined in K, such as parsers, interpreters, symbolic execution engines, semantic debuggers, test-case generators, state-space explorers, model checkers, and even deductive program verifiers. The latter are bas...

متن کامل

Dynamic Verification of C++ Generic Algorithms

Dynamic veriication is a new approach to formal veriication, applicable to generic algorithms such as those found in the Standard Template Library (STL, part of the Draft ANSI/ISO C++ Standard Library). Using behavioral abstraction and symbolic execution techniques, veriications are carried out at a meta-level such that the results can be used in a variety of instances of the generic algorithms...

متن کامل

How C differs from Java for Symbolic Program Execution

Verificationsystems, test generators, debuggers, and compilers offten implement a symbolic execution framework. We have identified a small set of features in ANSI C, MISRA C, and C0 that may require special treatment or special considerations when migrating a symbolic execution framework for Java to a framework for a C dialect. For some of these language features we have developed symbolic exec...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2013